package zhenai

import (
    "regexp"
    "spider/concurrent2/parser"
)

// 城市列表解析器
// 解析結果 城市列表
type CityListParser struct {
}

const citylistReg = `<a href="(http://www.zhenai.com/zhenghun/[a-zA-Z0-9]+)"[^>]*>([^<]*)</a>`

func (CityListParser CityListParser) Analysis(contents []byte) parser.ParseResult {
    compile := regexp.MustCompile(citylistReg)
    // matches := compile.FindAll(bytes,-1) // -1代表获取所有匹配项
    
    //  FindAllSubmatch是FindSubmatch的'All'版本;它返回表达式的所有连续匹配的切片
    matches := compile.FindAllSubmatch(contents, -1) // -1代表获取所有匹配项
    
    result := parser.ParseResult{}
    
    for _, matche := range matches {
        result.ReponseSlice = append(
            result.ReponseSlice, string(matche[2]))
        result.Requests = append(result.Requests, parser.Request{
            Url:    string(matche[1]),
            Parser: CityParser{},
        })
    }
    
    return result
}
